home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / include / Xm / PushBGP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-30  |  5.8 KB  |  196 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC. 
  3.  * ALL RIGHTS RESERVED 
  4. */ 
  5. /* 
  6.  * Motif Release 1.2.1
  7. */ 
  8. /*   $RCSfile: PushBGP.h,v $ $Revision: 10.1 $ $Date: 1994/02/03 15:46:04 $ */
  9. /*
  10. *  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  11. /*
  12. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  13. /*
  14. *  (c) Copyright 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY  */
  15. /*
  16. *  (c) Copyright 1988 MICROSOFT CORPORATION */
  17. #ifndef _XmPButtonGP_h
  18. #define _XmPButtonGP_h
  19.  
  20. #include <Xm/PushBG.h>
  21. #include <Xm/LabelGP.h>
  22.  
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26.  
  27. /*************************************************************/
  28. /* The PushButton Gadget Cache Object's class and instance records*/
  29. /*************************************************************/
  30.  
  31. typedef struct _XmPushButtonGCacheObjClassPart
  32. {
  33.     int foo;
  34. } XmPushButtonGCacheObjClassPart;
  35.  
  36.                     
  37. typedef struct _XmPushButtonGCacheObjClassRec  
  38. {
  39.     ObjectClassPart                     object_class;
  40.         XmExtClassPart                      ext_class;
  41.     XmLabelGCacheObjClassPart           label_class_cache;
  42.     XmPushButtonGCacheObjClassPart      pushbutton_class_cache;
  43. } XmPushButtonGCacheObjClassRec;
  44.  
  45. externalref XmPushButtonGCacheObjClassRec xmPushButtonGCacheObjClassRec;
  46.  
  47.  
  48. typedef struct _XmPushButtonGCacheObjPart
  49. {
  50.    Boolean         fill_on_arm;
  51.    Pixel            arm_color;
  52.    Pixmap        arm_pixmap;
  53.    Pixmap           unarm_pixmap;
  54.    unsigned char    multiClick;     /* KEEP/DISCARD resource */
  55.    Dimension        default_button_shadow_thickness;
  56.              /* New resource - always add it to gadget's dimension. */
  57.  
  58.    GC               fill_gc;
  59.    GC               background_gc;
  60.    int              timer;
  61.    
  62. } XmPushButtonGCacheObjPart;
  63.  
  64. typedef struct _XmPushButtonGCacheObjRec
  65. {
  66.     ObjectPart                   object;
  67.     XmExtPart                    ext;
  68.     XmLabelGCacheObjPart         label_cache;
  69.     XmPushButtonGCacheObjPart    pushbutton_cache;
  70. } XmPushButtonGCacheObjRec;
  71.  
  72.  
  73. /* PushButton class structure */
  74.  
  75. typedef struct _XmPushButtonGadgetClassPart
  76. {
  77.     XtPointer extension;  /* Pointer to extension record */
  78. } XmPushButtonGadgetClassPart;
  79.  
  80.  
  81. /* Full class record declaration for PushButton class */
  82.  
  83. typedef struct _XmPushButtonGadgetClassRec 
  84. {
  85.    RectObjClassPart             rect_class;
  86.    XmGadgetClassPart            gadget_class;
  87.    XmLabelGadgetClassPart       label_class;
  88.    XmPushButtonGadgetClassPart  pushbutton_class;
  89.  
  90. } XmPushButtonGadgetClassRec;
  91.  
  92.  
  93. externalref XmPushButtonGadgetClassRec xmPushButtonGadgetClassRec;
  94.  
  95.  
  96. /* PushButton instance record */
  97.  
  98. typedef struct _XmPushButtonGadgetPart
  99. {
  100.    XtCallbackList   activate_callback;
  101.    XtCallbackList   arm_callback;
  102.    XtCallbackList   disarm_callback;
  103.  
  104.    Dimension        show_as_default;
  105.    Boolean         armed;
  106.    int              click_count;
  107.  
  108.    Boolean        compatible;      /* if false it is Motif 1.1 else Motif 1.0  */
  109.                                   /* not cached for performance reasons */
  110.    
  111.    XmPushButtonGCacheObjPart  *cache; /* Replace cache instance fields */
  112.                     /* with a pointer */
  113. } XmPushButtonGadgetPart;
  114.  
  115. /* Full instance record declaration */
  116.  
  117. typedef struct _XmPushButtonGadgetRec {
  118.    ObjectPart              object;
  119.    RectObjPart             rectangle;
  120.    XmGadgetPart            gadget;
  121.    XmLabelGadgetPart       label;
  122.    XmPushButtonGadgetPart   pushbutton;
  123. } XmPushButtonGadgetRec;
  124.  
  125. /* MACROS */
  126. /**********/
  127.  
  128. /* Macros for cached instance fields */
  129.  
  130. #define PBG_FillOnArm(w)        (((XmPushButtonGadget) (w)) -> \
  131.                        pushbutton.cache->fill_on_arm)
  132. #define PBG_ArmColor(w)            (((XmPushButtonGadget) (w)) -> \
  133.                        pushbutton.cache->arm_color)
  134. #define PBG_FillGc(w)            (((XmPushButtonGadget) (w)) -> \
  135.                        pushbutton.cache->fill_gc)
  136. #define PBG_BackgroundGc(w)        (((XmPushButtonGadget) (w)) -> \
  137.                        pushbutton.cache->background_gc)
  138. #define PBG_Timer(w)            (((XmPushButtonGadget) (w)) -> \
  139.                        pushbutton.cache->timer)
  140. #define PBG_ArmPixmap(w)        (((XmPushButtonGadget) (w)) -> \
  141.                        pushbutton.cache->arm_pixmap)
  142. #define PBG_UnarmPixmap(w)        (((XmPushButtonGadget) (w)) -> \
  143.                        pushbutton.cache->unarm_pixmap)
  144. #define PBG_MultiClick(w)              (((XmPushButtonGadget) (w)) -> \
  145.                                       pushbutton.cache->multiClick)
  146. #define PBG_DefaultButtonShadowThickness(w)     (((XmPushButtonGadget) (w)) -> \
  147.                        pushbutton.cache->default_button_shadow_thickness)
  148.  
  149. /* Macros for uncached instance fields */
  150.  
  151. #define PBG_ActivateCallback(w)        (((XmPushButtonGadget) (w)) -> \
  152.                        pushbutton.activate_callback)
  153. #define PBG_ArmCallback(w)        (((XmPushButtonGadget) (w)) -> \
  154.                        pushbutton.arm_callback)
  155. #define PBG_DisarmCallback(w)        (((XmPushButtonGadget) (w)) -> \
  156.                        pushbutton.disarm_callback)
  157. #define PBG_Armed(w)            (((XmPushButtonGadget) (w)) -> \
  158.                        pushbutton.armed)
  159. #define PBG_ClickCount(w)      (((XmPushButtonGadget) (w)) -> \
  160.                        pushbutton.click_count)
  161. #define PBG_Compatible(w)      (((XmPushButtonGadget) (w)) -> \
  162.                        pushbutton.compatible)
  163. #define PBG_ShowAsDefault(w)        (((XmPushButtonGadget) (w)) -> \
  164.                        pushbutton.show_as_default)
  165.  
  166. /******************************/
  167. /* Convenience Macros         */
  168. /******************************/
  169.  
  170. #define PBG_Cache(w)            (((XmPushButtonGadget)(w))->\
  171.                        pushbutton.cache)
  172. #define PBG_ClassCachePart(w) \
  173.     (((XmPushButtonGadgetClass)xmPushButtonGadgetClass)->gadget_class.cache_part)
  174.  
  175.  
  176. /********    Private Function Declarations    ********/
  177. #ifdef _NO_PROTO
  178.  
  179. extern void _XmClearBGCompatibility() ;
  180.  
  181. #else
  182.  
  183. extern void _XmClearBGCompatibility( 
  184.                         Widget pbg) ;
  185.  
  186. #endif /* _NO_PROTO */
  187. /********    End Private Function Declarations    ********/
  188.  
  189.  
  190. #ifdef __cplusplus
  191. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  192. #endif
  193.  
  194. #endif /* _XmPButtonGP_h */
  195. /* DON'T ADD ANYTHING AFTER THIS #endif */
  196.